1. Field of the Invention
The present invention generally relates to data grid network appliances, and, more specifically, to techniques for storing and using objects having custom object-in-memory formats in data grid network appliances.
2. Description of Related Art
Object serialization, also called “deflating” or “marshalling” an object, converts the object into a serial sequence of bytes (i.e., a binary byte buffer, also referred to herein as a “binary object”). A serializer may, for example, translate field and reference values, but not additional object overhead, of the object to a binary byte buffer. The byte buffer may later be de-serialized, also called “inflating” or “de-marshalling” the object, to create an object having an identical internal state as the original. In particular, the byte buffer may be translated back into field and reference values and inserted into a new object to create the object having an identical state.
In-memory data grids have been used to store application data in memory across a grid of processing elements. In network appliances which provide data grid services to client applications, client objects (e.g., Java® or .NET® objects) may be serialized to byte buffers and stored as such in the data grid. By serializing objects to byte buffers, fewer memory allocations may be required, and the objects may consume less storage, because, for example, object overhead may be absent from the byte buffers. Further, because code need not be stored in raw byte buffers, the byte buffers may be language neutral.
One approach for storing serialized objects on network appliances uses a portable object format (POF) that strictly defines data representations. That is, the POF mandates a format for binary representations of objects. As a result, the POF may be inefficient where, for example, the native, application-level format of the object must be converted to the mandated format. Further, because the format is mandated, objects cannot be serialized using custom formats (e.g., compressed or encrypted formats), which may be more desired and/or more efficient than the mandated format.